C++ STL基本组成(6大组件+13个头文件) 您所在的位置:网站首页 stl 常用算法 C++ STL基本组成(6大组件+13个头文件)

C++ STL基本组成(6大组件+13个头文件)

2023-10-13 03:46| 来源: 网络整理| 查看: 265

首页 > STL > STL基础 C++ STL基本组成(6大组件+13个头文件)   通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的,它们各自的含义如表 1 所示。 表 1 STL 组成结构 STL的组成 含义 容器 一些封装数据结构的模板类,例如 vector 向量容器、list 列表容器等。 算法 STL 提供了非常多(大约 100 个)的数据结构算法,它们都被设计成一个个的模板函数,这些算法在 std 命名空间中定义,其中大部分算法都包含在头文件 中,少部分位于头文件 中。 迭代器 在 C++ STL 中,对容器中数据的读和写,是通过迭代器完成的,扮演着容器和算法之间的胶合剂。 函数对象 如果一个类将 () 运算符重载为成员函数,这个类就称为函数对象类,这个类的对象就是函数对象(又称仿函数)。 适配器 可以使一个类的接口(模板的参数)适配成用户指定的形式,从而让原本不能在一起工作的两个类工作在一起。值得一提的是,容器、迭代器和函数都有适配器。 内存分配器 为容器类模板提供自定义的内存申请和释放功能,由于往往只有高级用户才有改变内存分配策略的需求,因此内存分配器对于一般用户来说,并不常用。

关于表 1 中罗列的 STL 的构成,初学者简单了解即可,后续章节将专门对它们做系统的深入讲解。

另外,在惠普实验室最初发行的版本中,STL 被组织成 48 个头文件;但在 C++ 标准中,它们被重新组织为 13 个头文件,如表 2 所示。 表 2 C++ STL头文件      

关于这些头文件的作用和用法,本节不做过多赘述,后续章节会做详细介绍。

按照 C++ 标准库的规定,所有标准头文件都不再有扩展名。以 为例,此为无扩展名的形式,而 为有扩展名的形式。 但是,或许是为了向下兼容,或许是为了内部组织规划,某些 STL 版本同时存储具备扩展名和无扩展名的两份文件(例如 Visual C++ 支持的 Dinkumware 版本同时具备 和 );甚至有些 STL 版本同时拥有 3 种形式的头文件(例如 SGI 版本同时拥有 、 和 );但也有个别的 STL 版本只存在包含扩展名的头文件(例如 C++ Builder 的 RaugeWare 版本只有 )。

建议读者养成良好的习惯,遵照 C++ 规范,使用无扩展名的头文件。

关注公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

微信扫码关注公众号

  推荐阅读 一套完整的嵌入式开发学习路线(高薪就业版) 一套课程卖1万,TMD太贵了! 跑了3000公里,见了一位大佬 Java商品信息查询 Shell echo命令:输出字符串 MySQL比较运算符一览表(带解析) C++ map容器operator[]和insert()效率对比(深度剖析) Xpath简明教程(十分钟入门) SQL HAVING子句 CPU缓存(Cache)到底是什么?


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有